草庐IT

c++ - GCC、Unicode 和 __FUNCTION__

全部标签

clang 和 gcc 中的 C++14 可变参数模板参数推断

我正在使用clang3.5.0和gcc版本4.9.2(两者都启用了C++14选项,尽管尾随返回类型可以在C++11中完成)。以下代码在g++中编译,而不是在clang++中编译。我的问题是“哪一个是正确的?”#include#include#includeusingnamespacestd;templatestructsymop{OPop;tuplefs;symop(constOP&oopp,constF1&f1,constFs&...ffss):op(oopp),fs(f1,ffss...){}};templateautobaz(constsymop&so){returnso.op(

c++ - AVX、SSE 总和比 gcc 自动向量化慢

我有一个奇怪的现象,无法真正解释。我正在尝试编写一些数字代码,从而对一些实现进行基准测试。我只是想用SSE和AVX以及gcc自动矢量化来对一些vector加法进行基准测试。为了测试这一点,我使用并修改了下面的代码。代码:#include#include#include"../../time/timer.hpp"voidser(double*a,double*b,double*res,intsize){for(inti(0);i对于计时和计算的GFLOP/S,我得到:./test3AVX1892ms0.338266GFLOP/sSSE408ms1.56863GFLOP/sSER396ms

c++ - 如何获得基于 c 函数的差异?

我们的团队使用svn来管理我们的源代码。在对C文件执行重构时,我偶尔会更改函数并将它们移动到文件中。通常我会尽量避免移动函数,因为它会让默认的svndiff对正在发生的事情有点困惑,而且它通常会提供一个比它需要的更令人困惑的diff。尽管如此,我偶尔也会更改函数文件位置和函数内部代码。另一个出现这种情况的地方是分支合并,当文件有冲突时,一个或两个分支都有移动以及函数内更改。因此,我正在寻找的是一种语义感知差异工具,它可以告诉我两个级别的差异-功能安排和细节(功能内)。我尝试使用“-p”选项来比较差异(-x-p到svn差异),但这不是它的目的,它肯定没有做我想要的。我刚刚想到的另一个选择

c++ - 如何使用模块在 C 中编译应用程序?

我想做一个应用程序,它可以用外部模块编译,例如在php中。在php中你可以在运行时加载模块,或者将php与模块一起编译,这样模块就可以在运行时不加载。但我不明白如何做到这一点。如果我在module.c中有模块并且有一个函数,称为say_hello,如果你明白我的意思,我如何将它注册到主应用程序?/*module.c*/#include//hereregistersay_hellofunction,buthow,ifican'tinglobalscope//callanotherfunction?voidsay_hello(){printf("hello!");}如果我将所有文件(主应用

C++ getchar() 是否还有数据等待读取

我正在用c/c++实现一个关键阅读器程序。我正在使用Linux。我知道无缓冲的getchar函数将返回键的小数据值。对于所有ASCII键(a-z、A-Z、1-9、标点符号、回车、制表符和ESC),getchar()将返回一个值。对于其他键,例如方向键,会读取ESC键,但是当再次调用getchar()时,它会得到另一个值(A、B、C或D)。A=65B=66向上箭头=279165F5=27914953126ESC=27全表here有什么方法可以检查是否有更多字符要读取,或者是否只有一个字符?当读取一个键并且它的第一个值是ESC时,我不知道它是以ESC开头的功能键还是只是ESC键。#incl

c++ - Visual Studio 2012的任何免费C/C++重构工具/插件?

我看到了一些好的商业工具,比如:VisualAssistXCodeRushResharper(.NET)有什么免费的/开源的工具/插件可以做类似的工作吗? 最佳答案 微软的ProductivityPowerTools怎么样? 关于c++-VisualStudio2012的任何免费C/C++重构工具/插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/17314359/

c++ - 如何使用函数 freopen_s

为了从文本文件中读取输入,我写了下面的代码:intmain(){intx;#ifndefONLINE_JUDGEfreopen("input.txt","r",stdin);#endifscanf("%d",&x);printf("%d\n",x);system("pause");return0;}效果还不错。但是,在visualstudio中,编译器由于freopen而给我一个错误,并建议我改用freopen_s。我试图了解函数freopen_s的工作原理,但我做不到。我的代码:intmain(){intx;#ifndefONLINE_JUDGEFILE*stream;freopen

c++ - 如何将 C 生成文件移植到 C++ 生成文件?

我有以下遗留makefile。如何更新此文件以改为编译C++?这是依赖部分:#Dependencyrules.PHONY:allcleanall:$(TARGET)_$(JENNIC_CHIP)$(BIN_SUFFIX).bin-include$(APPDEPS)%.d:rm-f$*.o%.o:%.S$(infoAssembling$它为微型编译一些C代码。 最佳答案 我认为您应该将CC从gcc更改为g++。 关于c++-如何将C生成文件移植到C++生成文件?,我们在StackOverf

C++ 多态性 : Is there any way to find the address of an object's member function?

如果我有一个纯虚拟基类及其多个派生...classBase{public:virtualvoidmethod1()=0;}classDerived1:publicBase{public:voidmethod1()override{...}}classDerived2:publicBase{public:voidmethod1()override{...}}有什么方法可以让持有未知派生类型对象的Base*的代码确定它持有的对象的method1()函数的地址Base*指针指向?我想做的是这样的:voidsomeOtherFunction(Base*pb){printf("IfIcallpb

c++ - Boost::bind 一个带有 boost::function 参数的方法

我想为async_write提供一个额外的boost::function。我希望首先调用连接自己的HandleWrite函数,然后调用提供的boost::function。绑定(bind)asioasync_write的Connection成员方法voidConnection::HandleWrite(constboost::system::error_code&e,boost::functionhandler){//Coderemovedforclarityif(!handler.empty())handler(e);};尝试将HandleWrite绑定(bind)到asioasyn